package com.nuanshui.heatedloan.fund.facade;

import com.nuanshui.heatedloan.dubbo.DubboResponse;
import com.nuanshui.heatedloan.fund.form.UseJadeCurrencyForm;
import com.nuanshui.heatedloan.fund.model.JadeCurrencyUse;
import com.nuanshui.heatedloan.fund.model.JadeMoneyRule;
import com.nuanshui.heatedloan.fund.model.SystemCurrency;

import java.util.List;

/**
 * 虚拟币service
 * @param 
 * @author guohao
 * @date 2017年1月9日 下午2:18:10
 * @since $
 */

public interface JadeCurrencyService {
	
	/**
	 * 充值虚拟币生成账单
	 * @param @param price
	 * @param @param type
	 * @param @param userId
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午4:15:47
	 * @since $
	 */
    SystemCurrency jadeCurrencyOrder(Integer price, Integer type, String userId);
	
	
	/**
	 * 增加用户虚拟币
	 * @param @return
	 * @author guohao
	 * @date 2016年8月25日 上午10:31:06
	 * @since $
	 */
    DubboResponse addUserCurrency(Long price, String userId, String billTitle);
	
	/**
	 * 获取虚拟币充值奖励 制度
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午4:16:12
	 * @since $
	 */
    List<JadeMoneyRule> jadeCurrencyRechargeRule();
	/**
	 * 获取某个用户的虚拟币数
	 * @param @param userId
	 * @param @return
	 * @author guohao
	 * @date 2016年7月7日 上午9:58:59
	 * @since $
	 */
    Long loadTotalJadeCurrency(String userId);
	
	/**
	 * 充值确认虚拟币
	 * @param @param payForm
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午4:15:14
	 * @since $
	 */
   // boolean  rechargeJadeCurrency(PayForm payForm);
	
	/**
	 * 确认订单使用的玉币
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午4:16:44
	 * @since $
	 */
    DubboResponse confirmUseJadeCurrency(UseJadeCurrencyForm form);
	
	/**
	 * 根据交易号获取某个玉币的使用记录
	 * @param @param orderNum
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午5:37:45
	 * @since $
	 */
    JadeCurrencyUse selectJadeCurrencyUsc(String orderNum);
	
	/**
	 * 根据交易号获取某个虚拟币的充值记录
	 * @param @param dealNum
	 * @param @return
	 * @author guohao
	 * @date 2016年7月11日 下午5:41:36
	 * @since $
	 */
    SystemCurrency selectSystemCurrency(String dealNum);
	/**
	 * 更新玉币为使用状态
	 * @param @param dealNum
	 * @author guohao
	 * @date 2016年7月22日 下午4:26:23
	 * @since $
	 */
    void updateSystemCurrencyUscStutus(String dealNum);
	
	/**
	 * 退换玉币使用
	 * @param @param dealNum
	 * @author guohao
	 * @date 2016年7月22日 下午4:29:05
	 * @since $
	 */
    void refundSystemCurrencyUsc(String dealNum);
	
	
	

}
